Map presentation for multi-floor buildings

ABSTRACT

Example systems, methods, and computer-readable storage media for displaying a map of a multi-floor building are presented. In one example, a view may be generated for display. The view may include a first floor map of a building displayed at an angle perpendicular to a display of a plurality of floor maps of the building arranged in parallel according to position within the building. During the display of the view, a user selection of an individual feature of the first floor map may be received. In response to the user selection, the display of the view is modified to include information corresponding to the selected feature. The modifying of the view ma include scanning across the view to the selected feature, and zooming in the view to the selected feature.

PRIORITY CLAIM

This application is a continuation of and claims the benefit of priorityto U.S. application Ser. No. 14/514,118, filed on Oct. 14, 2014,entitled “MAP PRESENTATION FOR MULTI-FLOOR BUILDINGS,” which is herebyincorporated by reference in its entirety.

FIELD

This application relates generally to the field of data processing and,in an example embodiment, to presentation of maps for multiple floors ofa building.

BACKGROUND

Electronic mapping applications or systems, in which a two-dimensionalplan or map view of an area, such as a street map or other kind ofgeographical map, have largely supplanted the use of paper maps due toseveral factors, including, but not limited to, the increasedavailability of navigational devices, smart phones, tablet computers,and other mobile systems, the enhanced access to the Global PositioningSystem (GPS) and other communication systems via such devices, and theupdateability of electronic maps on these devices via the Internet.

Over time, the use of electronic maps has expanded into intra-buildingenvironments, especially for large buildings with multiple floors, eachof which may include a significant number of possible internaldestinations and routes therebetween. Typically, each floor is presentedin isolation as a separate map, depicting the various rooms, open areas,passageways, and other significant features of that floor.

BRIEF DESCRIPTION OF DRAWINGS

The present disclosure is illustrated by way of example and notlimitation in the figures of the accompanying drawings, in which likereferences indicate similar elements and in which:

FIG. 1 is a block diagram illustrating an example communication systememployable for displaying a multi-floor map for a building;

FIG. 2 is a block diagram illustrating modules of a user device forpresenting a multi-floor map of a building for display;

FIG. 3 is a flow diagram illustrating an example method of presenting amulti-floor map of a building for display;

FIG. 4 is a flow diagram illustrating another example method ofpresenting a multi-floor map of a building for display;

FIGS. 5-7 are example graphical representations of a multi-floor map fora building;

FIG. 8 is an example graphical representation of a floor map for one ofthe floors from the multi-floor map of FIGS. 5-7;

FIG. 9 is an example graphical representation of the floor map of FIG. 8with a user-selected feature highlighted;

FIG. 10 is an example graphical representation of the floor map of FIG.9 after scanning and zooming to the user-selected feature;

FIG. 11 is a flow diagram of an example method of providing amulti-floor map of the building from a street map;

FIG. 12 is an example street map showing the building;

FIG. 13 is a flow diagram of an example method of presenting a floor mapof a user-selected floor of the building within a street map;

FIG. 14 is an example street map showing a floor map of a user-selectedfloor of the building; and

FIG. 15 is a block diagram of a machine in the example form of aprocessing system within which may be executed a set of instructions forcausing the machine to perform any one or more of the methodologiesdiscussed herein.

DETAILED DESCRIPTION

The description that follows includes illustrative systems, methods,techniques, instruction sequences, and computing machine programproducts that exemplify illustrative embodiments. In the followingdescription, for purposes of explanation, numerous specific details areset forth to provide an understanding of various embodiments of thesubject matter. It will be evident, however, to those skilled in the artthat embodiments of the subject matter may be practiced without thesespecific details. In general, well-known instruction instances,protocols, structures, and techniques have not been shown in detail.

FIG. 1 is a block diagram illustrating an example communication system100 employable for displaying a multi-floor map for a building. Thecommunication system 100 may include one or more user devices 110, eachof which may include or be communicatively coupled with a display device112 for displaying a multi-floor map to a user of the user device 110.In various examples, the user devices 110 may include, but are notlimited to, desktop computers, laptop computers, tablet computers, smartphones, personal digital assistants (PDAs), television set-top boxes,gaming systems, and the like. In other examples, the user devices 110may be special-purpose electronic devices or systems that may beavailable at a kiosk or similar system accessible to the public. Thedisplay device 112 may be a television, a video monitor, a touchscreen,or any other visual display device capable of displaying a multi-floormap and other graphical representations to a user that are describedherein.

The user devices 110 may be communicatively coupled to a mapping server120 or similar system via a communication network 130, which may includeany one or more networks or communication connections, such as, forexample, a local area network (LAN) (e.g., Ethernet or WiFi®), a widearea network (WAN) (e.g., the Internet), a cellular network (e.g.,third-generation (3G) or fourth-generation (4G) network), a Bluetooth®connection, or another communication network or connection.

The mapping server 120 may access mapping data from a mapping database122 or other data storage device or system and provide the mapping datato the user devices 110 via the communication network 130. The mappingdata may include building map data, such as floor maps for each floor ofone or more buildings or other public and non-public venues, including,but not limited to, office buildings, apartment buildings, hotels,sports venues (e.g., stadiums, arenas, and so on), private residences,and the like. The mapping data may also include information associatedwith various features of each of the floor maps, such as, for example,information associated with various organizations (e.g., corporategroups, touring groups, fraternal associations, and so on), informationregarding individuals (e.g., name, contact information, organizationalinformation, personal preferences, and so forth), and/or any otherinformation possibly corresponding to the floor maps. The mappingdatabase 122 may also include mapping data for external areassurrounding the one or more buildings (e.g., geographical features,street and building locations and names, and the like). In otherexamples, the user device 110 may store the mapping data locally,thereby possibly rendering the communication network 130, the mappingserver 120, and/or the mapping database 122 superfluous in someembodiments.

FIG. 2 is a block diagram illustrating modules of a user device 200 forpresenting a multi-floor map of a building for display. The user device200 may be employed in some examples as one or more of the user devices110 of FIG. 1. As shown in FIG. 2, the user device 200 may include auser input interface 202, a display interface 204, a communicationnetwork interface 206, and a presentation module 208. Other modules orcomponents of the user device 200 not shown in FIG. 2, such as, forexample, one or more hardware processors, a power supply, and the like,may be included in the user device 200, but are not explicitly shown tofocus and simplify the following discussion. Also, each of the modules202-208 of FIG. 1 may be implemented in hardware, software, or somecombination thereof. In some examples, any of the modules 202-208 may becombined with other modules, or may be separated into a greater numberof modules.

The user input interface 202 may be configured to receive user inputindications and selections for directing the user device 200 to performthe various operations and functions discussed in greater detail below.Examples of the user input interface 202 may include, for example, akeyboard, a mouse, a joystick, a touchscreen, and/or the like. In atleast some embodiments, a user of the user device 200 may employ theuser input interface 202 to select one of a plurality of displayed floormaps, select one or more features of a particular floor map, and so on.

The display interface 204 may be configured to present floor maps andother visual information to a display device (e.g., the display device112 of FIG. 1) for display to a user of the user device 200. The displayinterface 204 may include one or more of a composite video interface, acomponent video interface, a High Definition Multimedia Interface(HDMI), and/or any other digital or analog video interface, includingexternal and/or internal video interfaces, possibly depending on whetherthe display device 112 is incorporated within the user device 200.

The communication network interface 206 may be configured to communicatewith a mapping server (e.g., mapping server 120 of FIG. 1) and otherservers and communication devices via a communication network (e.g.,communication network 130 of FIG. 1). The communication networkinterface 206 may be configured to communicate by way of a LAN, WAN, 3G,or 4G network, or any other communication network or connection.

The presentation module 208 may be configured to present one or morefloor maps for multiple floors of one or more buildings on a display(e.g., display device 112 of FIG. 1) via the display interface 204. Thepresentation module 208 may also present for display, in some examples,maps for geographic areas external to the buildings, informationregarding features associated with such maps, and so forth. In someexamples, the presentation module 208 may also generate the floor mapsand other graphical information based on map data for the buildings, theenvironment surrounding the building, and/or other information. The mapsbeing displayed may be under the control of the user via input receivedvia the user input interface 202.

As depicted in FIG. 2, the presentation module 208 may include ananimation module 210. The animation module 210, in some examplesexplained below, may animate transitions between map displays, such asbetween a display of multiple floor maps and a single floor map.Additionally, such animation may transition between alternative views ofone or more maps, such as between a perspective view and a plan view. Aswill be evident from the following examples, the animation mayfacilitate greater understanding by the user of the displayed featuresof the various floor maps of a building and their spatial relationshipto the other floor maps, and possibly to the external environment of thebuilding.

FIG. 3 is a flow diagram illustrating an example method 300 ofpresenting a multi-floor map of a building for display to one or moreusers. In one example, the user device 200 of FIG. 2 and, morespecifically, the various modules 202-210 incorporated therein, mayperform the method 300, although other devices or systems notspecifically described herein may perform the method 300 in otherimplementations.

In the method 300, a first view of one or more floor maps for one ormore floors of a building may be presented by the presentation module208 for display (operation 302). In one example, the first view mayinclude multiple floor maps of the building, arranged in parallel toeach other according to the position of their corresponding floors inthe building. Further, to facilitate visualization of at least a portionof each of the floor maps, the presentation module 208 may present thefloor maps at a perspective or angled view at some angle betweenperpendicular to the floor maps and parallel to the floor maps. As aresult, some of the information contained in at least some floor mapsmay be obscured by displayed adjacent floor maps.

A user selection of one of the floor maps may then be received via theuser input interface 202 (operation 304). As is discussed more fullybelow, such a user selection may be a graphical selection (e.g., a mouseclick, a single or double tap of a touchscreen, and the like) on thedisplay device 112 of the floor map, a selection of a graphical regionon the display device 112 that corresponds to the floor map, or thelike.

In response to the user selection, the presentation module 208, usingthe animation module 210, may present an animation from the first viewof the floor maps to a second view of the selected floor map (operation306). In one example, the presentation module 208 may present theselected floor map in a plan, or top, view. Further, the selected floormap may be presented for display in isolation, without any other floormaps being presented at that time, so that the selected floor map may bedisplayed without obstruction from another floor map. Further, theanimation from the first view to the second view may facilitate spatialunderstanding regarding the relative position of the selected floor mapwithin the building. In addition, the received user selection, or aseparate user selection, may indicate a particular location or feature(e.g., a particular room or cubicle) of the selected floor map. In thatexample, the presentation module 208 may focus the presentation of theselected floor map on the selected location or feature. Further, thepresentation module 208 may scan across the selected floor map and/orzoom in to the selected location or feature of the floor map.

While FIG. 3 depicts the operations 302-306 of the method 300 as beingexecuted serially in a particular order, other orders of execution,including parallel, concurrent, or overlapping execution of one or moreof the operations 302-306, are possible. The remaining methods of FIGS.4, 11, and 13, described in greater detail below, may be interpreted ina similar manner.

FIG. 4 is a flow diagram illustrating another example method 400 ofpresenting a multi-floor map of a building for display. In the method400, the presentation module 208 may present a first view of one or morefloor maps of a building (operation 402). As with operation 302 of themethod 300 of FIG. 3, the first view, in some embodiments, may includemultiple floor maps of the building, arranged or oriented in parallel toeach other according to the relative position of their associated floorsin the building. Further, to facilitate visualization of at least aportion of each of the floor maps, the presentation module 208 maypresent the floor maps at an angled or perspective view at someorientation between perpendicular to the floor maps and parallel to thefloor maps. Accordingly, some of the information contained in at leastsome of the floor maps may be obscured or hidden by adjacent floor mapsbeing displayed.

The presentation module 208 may receive, via the user input interface202, a user indication or selection of a first one of the floor maps(operation 404). In one example, the user indication may be a hoveringof a cursor or other pointer over the floor map being selected. In otherexamples, the user selection may be a single touch of a touchscreen. Inyet other examples, the user indication may be a cursor hovering over agraphical area or region of the display corresponding to the floor mapto be selected. Many other types of user input indications may beemployed in other embodiments.

In response to the user indication, the presentation module 208 maymodify at least one other floor map (operation 406) so that the selectedfloor map may not be obscured or obstructed. In one example, thetransparency of the at least one other floor map that is obscuring atleast a portion of the selected or indicated floor map may be increasedso that at least some previously-obscured features of the indicatedfloor map may be seen through the at least one other floor map.

FIGS. 5 through 10 are graphical representations of one or more floormaps displayed (e.g., via a display device 112) according to exampleembodiments, including the methods 300 and 400 of FIGS. 3 and 4. In FIG.5, a graphical representation of a multi-floor map 500 includingmultiple floor maps 501, 502, 503, and 504 representing separate floorsof a building are displayed to a user. In at least some embodiments, thefloor maps may have been generated using map data for the building. Inthis example, the floor maps 501, 502, 503, and 504 are arrangedaccording to their relative location within the building. For instance,the first floor map 501 may be a floor map for the first floor of thebuilding, the second floor map 502 may be a floor map for the secondfloor immediately above the first floor of the building, the third floormap 503 may be a floor map for the third floor immediately above thesecond floor of the building, and the fourth floor map 504 may be afloor map for the fourth floor immediately above the third floor of thebuilding. Also, as shown in FIG. 5, the floor maps 501-504 are presentedin perspective as though the user is viewing the floor maps 501-504 froman angle above horizontal and below vertical relative to the planesdefined by the floor maps 501-504. As a result, the user is providedvisual cues as to how the various features of each of the floor maps501-504 relate in space to each other, and to the building in general.In FIG. 5, the features of each of the floor maps 501-504 are showncollectively as a large crossed box without depicting details of thefeatures to simplify the depiction of the floor maps 501-504.

Also shown in FIG. 5 is a set of user-selectable regions 510, with eachof the floor maps 501-504 corresponding to one of the regions 510. Forexample, the region 510 “L1” is associated with the first floor map 501,the region 510 “L2” is associated with the second floor map 502, theregion 501 “L3” is associated with the third floor map 503, and theregion 510 “L4” is associated with the fourth floor map 504. Also, anadditional region 510 “All”, which is activated in FIG. 5, as indicatedby a bold outline, indicates that all of the floor maps 501-504 arecurrently being displayed.

In this particular example, the floor maps 501-504 may be presented soas to provide the user a view of the floor maps 501-504 directly fromthe front of the building. In other examples, the floor maps 501-504 maybe presented so that the viewer is viewing the floor maps 501-504 from aside, rear, or corner of the building.

As a result of the arrangement of the floor maps 501-504 and the pointof view provided to the user, portions of the first three floor maps501-503 are partially hidden or obscured from the view of the user byone or more of the adjacent floor maps 502-504 positioned above thefloor map 501-503 of interest. To select a particular floor map 501-504for a more detailed viewing, the user may position or “hover” a cursor,tap a touchscreen, or perform some other input operation with respect tothe particular floor map 501-504 or a region 510 corresponding thereto.For example, as shown in a graphical representation of a multi-floor map600 in FIG. 6, the user may position a cursor over the second floor map502 or the L2 region 510, causing the third floor map 503 and the fourthfloor map 504 to be “faded out” or made more transparent, resulting in afaded third floor map 603 and a faded fourth floor map 604.Consequently, the user may view the entirety of the second floor map 502while maintaining the relative positioning of the floor maps 501, 502,603, and 604. Depending on the example, the transparency of the fadedthird floor map 603 and the faded fourth floor map 604 may or may not becomplete. If the transparency is complete, as is substantially depictedin FIG. 6, the user may more easily discern the details of the secondfloor map 502. If the transparency is incomplete, the user may retain atleast some visual cues regarding the location of the features of thesecond floor map 502 relative to those of the faded third floor map 603and the faded fourth floor map 604. In other examples, some aspect otherthan transparency, such as color or intensity, of the faded third floormap 603 and the faded fourth floor map 604 may be altered to allow theuser to view the entirety of the second floor map 502.

In FIG. 7, the user may have moved the cursor to the L1 region 510 or tothe first floor map 501 to fade out, or render more transparent, thesecond floor map 502, resulting in a faded second floor map 702 in agraphical representation of a multi-floor map 700. Accordingly, whilethe details of the faded second floor map 702 are not discernible, theentirety of the first floor map 501 may now be viewed. In some examples,as in FIG. 7, all of the floor maps 702, 603, and 604 above the firstfloor map 501 are faded. In other embodiments, only those floor mapsthat may obscure or hide details of the selected floor map, such as thesecond floor map 502 and the third floor map 503, may be faded or mademore transparent when the user indicates or selects the first floor map501.

In some examples, not all of the floor maps 501-504 associated with aparticular building may be displayed simultaneously or concurrently. Forexample, in buildings of high numbers of floors, a contiguous subset ofthe floors may be represented by floor maps on the display device 112 atany one time. The user may then manipulate a graphical slider bar orprovide some other user input to change the specific floor maps beingshown at any particular time while the presentation module 208 providesvisual cues to the user as to the position of the displayed floor mapsrelative to those floor maps that are not currently being displayed.

While the first floor map 501 of FIG. 7 is being presented for display,the user may further select or indicate the first floor map 501, such asby way of a mouse click, a tap of a touchscreen, or other means of userinput. In response, the presentation module 208, via the animationmodule 210, may animate the display from the multi-floor map 700 of FIG.7 to an example graphical representation of the first floor map 801illustrated in FIG. 8. In FIG. 8, the first floor map 801 is a plan orperpendicular view of the first floor map 501 of FIG. 7. Accordingly, inone example, the animation module 210 may remove or fade out all floormaps except for the first floor map 501 while tilting the first floormap 501 from the angled view of FIG. 7 to the plan or perpendicular viewof the first floor map 801, thus providing the user an unimpeded view ofthe first floor map 801 from above.

As shown in FIG. 8, the first floor map 801 may display a number offeatures of interest of the first floor map 501. Examples of suchfeatures include, for example, corner offices (e.g., AA1 through AA4),side offices (e.g., BB1, BB2, and CC1 through CC8), storage closets(e.g., SC1 and SC2), cubicle offices (e.g., A1 through A7, B1 throughB7, C1 through C7, and D1 through D7), a women's restroom (e.g., WRR), amen's restroom (e.g., MRR), elevators (e.g., E1 through E4), and anelevator lobby (e.g., “Elev. Lobby”). Similar floor maps may display anyother potential feature of interest, such as water fountains, stairways,passageways, and so on.

In some examples, the presentation module 208 may provide more detailedinformation (e.g., textual information) regarding a user-selectedfeature of the first floor map 801. For example, FIG. 9 is an examplegraphical representation of a first floor map 901 corresponding to thefirst floor map 801 of FIG. 8. The first floor map 901 may be presentedin response to a user selecting (e.g., via a mouse click, touchscreentap, or other user input) the cubicle A4 of the first floor map 801,shown as a selected feature 904. As illustrated in FIG. 9, a pop-upgraphical object 902 providing information corresponding to the selectedfeature 904 is presented for display. In this example, the presentationmodule 208 may display a name of the person occupying the cubicle A4(e.g., John Doe), an organization to which that person belongs (e.g.,Design Group 2), an email address of the person (e.g., jdoe@acorp.com),and a telephone extension for the office phone of the person (e.g.,x5555). In some embodiments, the presentation module 208 may alsohighlight the selected feature 904, such as, for example, by boldlyoutlining the cubicle A4, as shown in FIG. 9. Additionally, in someexamples, the presentation module 208 may highlight other features 906related to the selected cubicle A4, such as cubicles or other offices ofpersonnel from the same organization (e.g., Design Group 2) within thecorporation (e.g., cubicles A5 through A7, cubicle B7, and side officeCC7). In other examples, multiple such features may be highlighted basedon any logical connection or similarity between the various features.Also, the highlighted features need not all be located on the same floormap, as logically-associated features of other displayed floor maps maybe highlighted or indicated as well. While the highlighting of featuresis performed using bold outlines in FIG. 9, other types of highlighting(e.g., boldface type, flashing, and so on) may be utilized in otherembodiments.

Continuing from the example of FIG. 9, FIG. 10 is an example graphicalrepresentation of the first floor map 901 of FIG, 9 after scanning andzooming to the user-selected feature 904 and surrounding portions of thefirst floor map 901, resulting in a partial first floor map 1001 inresponse to the user selection or indication discussed above inconjunction with FIG. 9. In one example, the presentation module 208,using the animation module 210, may animate the display from the firstfloor map 901 to the partial first floor map 1001 by a combination ofzooming in to the first floor map 901 and scanning toward the left ofthe first floor map 901. The zooming and scanning operations may occurserially in either order, or may be performed simultaneously orconcurrently in some fashion.

In some examples, the animation between FIGS. 7 and 8 (describedearlier) and/or between FIGS. 9 and 10 may support the understanding ofthe user with respect to the location of the selected floor map, and/orthe selected feature therein, with respect to the building and the otherfloors thereof.

In various embodiments, the presentation module 208 and the animationmodule 210 may provide additional animation to indicate a route betweentwo features of either the same floor map or different floor maps. Forexample, presuming the user has selected the feature 904, as depicted inFIGS. 9 and 10, the presentation module 208 may receive user inputindicating that the user is requesting a display of a navigation routefrom a current location of the user to the selected feature 904. Inresponse to the user input, the presentation module 208 may determinethe current location of the user, such as by way of GPS information,information derived from a LAN operating within the building, or otherinformation that indicates the current location of the user device 110or the user. Based on the current location information, the presentationmodule 208 may provide animation via a display device (e.g., displaydevice 112) that begins with a zoomed-in plan view of the currentlocation of the user on one of the floor maps of the building. Thepresentation module 208 may then zoom out and/or scan to a view of thatsame floor map, animate to a multi-floor map view (e.g., any of FIGS.5-7), animate to the floor map that includes the selected feature (e.g.,FIG. 8), and then scan and/or zoom to the selected feature (e.g., FIG.10). In addition, the presentation module 208 may be configured to addan animated line or other graphical indication explicitly denoting theroute from the current location of the user to the selected feature orlocation.

Various examples discussed thus far may also be incorporated within anexternal map that may depict the building relative to other buildings orstructures of the surrounding environment. To that end, FIG. 11 is aflow diagram of an example method 1100 of providing a multi-floor map ofa building from a street map, such as one similar to what may beprovided via Google Maps™ by Google™, MapQuest® by AOL®, and othermapping services. In the method 1100, the presentation module 208 maypresent for display a street map including a representation of abuilding (e.g., the building described above in conjunction with FIGS. 5through 10) (operation 1102). The presentation module 208 may thenreceive via the user input interface 202 a user selection of therepresentation of the building (operation 1104). In response to the userselection, the presentation module 208 may present a view of the floormaps for the building (operation 1106), such as, for example, themultiple floor maps 501-504, as illustrated in FIG. 5.

FIG. 12 is an example street map 1200 showing the building 1202 (labeled“A Corporation”) corresponding to the floor maps 501-504 of FIG. 5.Other geographic features or structures (e.g., thoroughfares such as ElmAvenue and Main Street, a parking lot, and a building in which “BCorporation” is located) in the vicinity of the building 1202 may alsobe displayed. In response to a user selection of the building 1202(e.g., a mouse click or hover, a touch of a touchscreen, or the like),the presentation module 208 may transition the display from the streetmap 1200 of FIG. 12 to the multiple floor maps 501-504 of FIG. 5.Moreover, in some examples, the presentation module 208, using theanimation module 210, may animate the transition from the street map1200 to the multiple floor maps 501-504, including any rotation,scanning, and/or zooming that may occur to complete the transition.

In other examples, the street map 1200 of FIG. 12 may incorporate atleast one floor map 501-504 of FIG. 5, thus combining aspects of the twodisplays. Depicting such an embodiment, FIG. 13 is a flow diagram of anexample method 1300 of presenting a floor map (e.g., one of the floormaps 501-504) of a user-selected floor of the building 1202 within astreet map. In the method 1300, the presentation module 208 may presentfor display a street map including a representation of a building (e.g.,building 1202) (operation 1302). The presentation module 208 may receivea user indication (e.g., a mouse click or hover, a tap of a touchscreen,or the like) of one of the floor maps of the building (operation 1304).In response to the user indication, the presentation module 208 maymodify the representation of the building to present the indicated floormap (operation 1306) (e.g., one of the floor maps 501-504). In someexamples, the presentation module 208 may present a default floor map,such as the topmost floor map (e.g., floor map 504) or the bottommost orstreet-level floor map (e.g., floor map 501) of the building 1202 bydefault without receiving a particular user selection or indication.

Exemplifying the method 1300 of FIG. 13, FIG. 14 is an example streetmap 1400 showing a floor map 1402 in plan or perpendicular view, thusdepicting a version of the floor map 801 of FIG. 8 as the user-selectedfloor (e.g., the first floor) of the building 1202 of FIG. 12. In oneembodiment, the street map 1400 may also include one or moreuser-selectable regions 1410 to allow the user to select the particularfloor map to be displayed within the representation of the building1202. In the specific example of FIG. 14, the user has selected theregion 1410 for the first floor (e.g., L1) of the building 1202, thuscausing a version of the floor map 801, referred to as floor map 1402 inFIG. 14, to be located and presented in proper scale relative to thestreet map 1400. In some examples, the user may also zoom in or out ofthe street map 1400, with the floor map 1402 continuing to be scaledproperly according to the current zoom level of the street map 1400.

In various embodiments, the user may select any of the other regions1410 to facilitate the display of the corresponding floor map within thestreet map 1400. In some examples, the user may provide an additionaluser input to transition from the street map 1400 of FIG. 14 to thefloor map 801 of FIG. 8, to the multiple floor maps 501, 702, 603, and604 of FIG. 7, or to another floor map view. The animation module 210may also provide animation to render such a transition, includingrotation, tilting, zooming, and/or scanning, as discussed earlier. Fromsuch a floor map view, the presentation module 208 may facilitatetransitions to other single-floor or multiple-floor views, as describedabove in connection with FIGS. 5-10. Also, the presentation module 208may facilitate transitions from any of the floor maps of FIGS. 5-10 backto the street maps 1200 and 1400 of FIGS. 12 and 14, allowing the userto navigate via the street maps 1200 and 1400 to other buildings, andthus possibly floor map views of those buildings.

In at least some of the embodiments described above, multiple floor mapscorresponding to the floors or levels of a building may be presented toa user. The multiple floor maps may be presented in a kind of“2.5-dimensional” view in which the floor maps are displayed accordingto their arrangement within a building. User inputs selecting orindicating a particular floor map may cause the selected floor map to bepresented to the user in an unobstructed 2.5-dimensional mode or atwo-dimensional mode, possibly with zooming and/or scanning operationsto focus the attention of the user on a particular feature of interestto the user. In addition, transitions between the various views may beanimated to facilitate a greater understanding of how the selected floormaps and included features are spatially related to the building andother floors. By facilitating this greater understanding, the technicaleffect of at least some of the various embodiments may include reducedconsumption of communication bandwidth and/or reduced consumption ofprocessing resources, including graphics processing resources, due tothe user not requiring as many separate map views to navigate aparticular building.

FIG. 15 depicts a block diagram of a machine in the example form of aprocessing system 1500 within which may be executed a set ofinstructions 1524 for causing the machine to perform any one or more ofthe methodologies discussed herein. In alternative embodiments, themachine operates as a standalone device or may be connected (e.g.,networked) to other machines. In a networked deployment, the machine mayoperate in the capacity of a server or a client machine in aserver-client network environment, or as a peer machine in apeer-to-peer (or distributed) network environment.

The machine is capable of executing a set of instructions 1524(sequential or otherwise) that specify actions to be taken by thatmachine. Further, while only a single machine is illustrated, the term“machine” shall also be taken to include any collection of machines thatindividually or jointly execute a set (or multiple sets) of instructionsto perform any one or more of the methodologies discussed herein.

The example of the processing system 1500 includes a processor 1502(e.g., a central processing unit (CPU), a graphics processing unit(GPU), or both), a main memory 1504 (e.g., random access memory), andstatic memory 1506 (e.g., static random-access memory), whichcommunicate with each other via bus 1508. The processing system 1500 mayfurther include video display unit 1510 (e.g., a plasma display, aliquid crystal display (LCD), or a cathode ray tube (CRT)). Theprocessing system 1500 also includes an alphanumeric input device 1512(e.g., a keyboard), a user interface (UI) navigation device 1514 (e.g.,a mouse), a disk drive unit 1516, a signal generation device 1518 (e.g.,a speaker), and a network interface device 1520.

The disk drive unit 1516 (a type of non-volatile memory storage)includes a machine-readable medium 1522 on which is stored one or moresets of data structures and instructions 1524 (e.g., software) embodyingor utilized by any one or more of the methodologies or functionsdescribed herein. The data structures and instructions 1524 may alsoreside, completely or at least partially, within the main memory 1504,the static memory 1506, and/or the processor 1502 during executionthereof by processing system 1500, with the main memory 1504, the staticmemory 1506, and the processor 1502 also constituting machine-readable,tangible media.

The data structures and instructions 1524 may further be transmitted orreceived over a computer network 1550 via network interface device 1520utilizing any one of a number of well-known transfer protocols (e.g.,HyperText Transfer Protocol (HTTP)).

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied on a machine-readable medium or ina transmission signal) or hardware modules. A hardware module is atangible unit capable of performing certain operations and may beconfigured or arranged in a certain manner. In example embodiments, oneor more computer systems (e.g., the processing system 1500) or one ormore hardware modules of a computer system (e.g., a processor 1502 or agroup of processors) may be configured by software (e.g., an applicationor application portion) as a hardware module that operates to performcertain operations as described herein.

In various embodiments, a hardware module may be implementedmechanically or electronically. For example, a hardware module mayinclude dedicated circuitry or logic that is permanently configured (forexample, as a special-purpose processor, such as a field-programmablegate array (FPGA) or an application-specific integrated circuit (ASIC))to perform certain operations. A hardware module may also includeprogrammable logic or circuitry (for example, as encompassed within ageneral-purpose processor 1502 or other programmable processor) that istemporarily configured by software to perform certain operations. Itwill be appreciated that the decision to implement a hardware modulemechanically, in dedicated and permanently configured circuitry, or intemporarily configured circuitry (for example, configured by software)may be driven by cost and time considerations.

Accordingly, the term “hardware module” should be understood toencompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired) or temporarilyconfigured (e.g., programmed) to operate in a certain manner and/or toperform certain operations described herein. Considering embodiments inwhich hardware modules are temporarily configured (e.g., programmed),each of the hardware modules need not be configured or instantiated atany one instance in time. For example, where the hardware modulesinclude a general-purpose processor 1502 that is configured usingsoftware, the general-purpose processor 1502 may be configured asrespective different hardware modules at different times. Software mayaccordingly configure the processor 1502, for example, to constitute aparticular hardware module at one instance of time and to constitute adifferent hardware module at a different instance of time.

Modules can provide information to, and receive information from, othermodules. For example, the described modules may be regarded as beingcommunicatively coupled. Where multiples of such hardware modules existcontemporaneously, communications may be achieved through signaltransmissions (such as, for example, over appropriate circuits and busesthat connect the modules). In embodiments in which multiple modules areconfigured or instantiated at different times, communications betweensuch modules may be achieved, for example, through the storage andretrieval of information in memory structures to which the multiplemodules have access. For example, one module may perform an operationand store the output of that operation in a memory device to which it iscommunicatively coupled. A further module may then, at a later time,access the memory device to retrieve and process the stored output.Modules may also initiate communications with input or output devices,and can operate on a resource (for example, a collection ofinformation).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors 1502 that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors 1502 may constitute processor-implementedmodules that operate to perform one or more operations or functions. Themodules referred to herein may, in some example embodiments, includeprocessor-implemented modules.

Similarly, the methods described herein may be at least partiallyprocessor-implemented. For example, at least some of the operations of amethod may be performed by one or more processors 1502 orprocessor-implemented modules. The performance of certain of theoperations may be distributed among the one or more processors 1502, notonly residing within a single machine but deployed across a number ofmachines. In some example embodiments, the processors 1502 may belocated in a single location (e.g., within a home environment, within anoffice environment, or as a server farm), while in other embodiments,the processors 1502 may be distributed across a number of locations.

While the embodiments are described with reference to variousimplementations and exploitations, it will be understood that theseembodiments are illustrative and that the scope of claims provided belowis not limited to the embodiments described herein. In general, thetechniques described herein may be implemented with facilitiesconsistent with any hardware system or hardware systems defined herein.Many variations, modifications, additions, and improvements arepossible.

Plural instances may be provided for components, operations, orstructures described herein as a single instance. Finally, boundariesbetween various components, operations, and data stores are somewhatarbitrary, and particular operations are illustrated in the context ofspecific illustrative configurations. Other allocations of functionalityare envisioned and may fall within the scope of the claims. In general,structures and functionality presented as separate components in theexemplary configurations may be implemented as a combined structure orcomponent. Similarly, structures and functionality presented as a singlecomponent may be implemented as separate components. These and othervariations, modifications, additions, and improvements fall within thescope of the claims and their equivalents.

This written description uses examples to disclose various embodiments,including the best mode thereof, and also to enable any person skilledin the art to practice the embodiments, including making and using anydevices or systems and performing any incorporated methods. Thepatentable scope of the embodiments is defined by the claims, and mayinclude other examples that occur to those skilled in the art. Suchother examples are intended to be within the scope of the claims ifthose examples include structural elements that do not differ from theliteral language of the claims, or if the examples include equivalentstructural elements with insubstantial differences from the literallanguage of the claims.

1. A method of displaying a map of a multi-floor building, the themethod comprising: generating, by one or more hardware processors, aview comprising a first floor map of a building displayed at an angleperpendicular to a display of a plurality of floor maps of the buildingarranged in parallel according to position within the building; causingdisplay of the view within a user interface presented on a displaydevice of a user device; receiving, during the display of the view, auser selection, input via the user interface, of an individual featureof the first floor map; and in response to receiving the user selectionof the individual feature of the first floor map, modifying the displayof the view to include information corresponding to the selectedfeature, the modifying of the display of the view comprising: scanningacross the view to the selected feature of the first floor map; andzooming in the view to the selected feature of the first floor map. 2.The method of claim 1, wherein: the view comprising the first floor mapis a first view; and the operations further comprise: generating asecond view comprising the plurality of floor maps of the buildingarranged in parallel according to position within the building anddisplayed at an angle between perpendicular to the floor maps andparallel to the floor maps; causing display of the second view on thedisplay device of the user device; and receiving, during the presentingfor display of the second view, a user selection of the first floor mapof the building.
 3. The method of claim 2, further comprising generatingan animation from the second view to the first view in response toreceiving the user selection of the first floor map of the building. 4.The method of claim 3, further comprising: receiving, prior to the userselection of the first floor map, a user indication of the first floormap, wherein the first floor map is at least partially obscured in thesecond view by a second floor map of the building; and modifying, inresponse to the user indication, the second floor maps, as displayed mthe second view, so that the first floor map is not obscured by thesecond floor map.
 5. The method of claim 4, wherein the user indicationcomprises a cursor positioned on the first floor map.
 6. The method ofclaim 4, further comprising: causing display of a plurality ofselectable regions in addition to the second view, wherein each of theplurality of selectable regions corresponds to one of the plurality offloor maps, wherein the user indication comprises a cursor positioned onthe selectable region corresponding to the first floor map.
 7. Themethod of claim 4, wherein: the first floor map is at least partiallyobscured in the second view by a third floor map of the building; andthe method further comprises modifying, in response to the userindication, the third floor map, as displayed in the second view, sothat the first floor map is not obscured by the third floor map.
 8. Themethod of claim 1, wherein: the modifying of the display of the viewfurther comprises presenting a pop-up graphical object that includes theinformation corresponding to the selected feature.
 9. The method ofclaim 1, further comprising: receiving user input indicating a requestfor display of a navigation route from a current location of a user tothe selected feature; and causing display of an animation of thenavigation route from the current location of the user to the selectedfeature.
 10. The method of claim 1, further comprising causing displayof information corresponding to the selected feature in an additionalgraphical object that is overlaid on the view.
 11. The method of claim10, wherein the information corresponding to the feature comprises atleast one of a name of the feature, a name of a person corresponding tothe feature, and contact information of the person corresponding to thefeature.
 12. The method of claim 1, wherein the feature comprises atleast one of a room and a cubicle represented in the first floor map.13. The method of claim 1, further comprising identifying at least oneadditional feature of the first floor map based on a logical connectionbetween the selected feature and the at least one additional feature;and highlighting, within the view, the selected feature and the at leastone additional feature.
 14. The method of claim 1, further comprising:determining at least one additional feature of a second floor map basedon a logical connection between the selected feature and the at leastone additional feature; receiving a second user selection of a secondfloor map from the plurality of floor maps; causing display of, inresponse to the second user selection, an additional view comprising thesecond floor map; and highlighting, within the additional view, the atleast one additional feature.
 15. The method of claim 1, furthercomprising: presenting an external view, wherein the external viewcomprises a street map including a representation of the building; andreceiving, during the presenting of the external view, a user selectionof the representation of the building, wherein the causing of thedisplay of the view is performed in response to the user selection ofthe representation of the building.
 16. The method of claim 15, whereinthe representation of the building in the external view comprises asecond floor map of the plurality of floors of the building.
 17. Themethod of claim 16, wherein the second floor map in the external viewcomprises a floor map of one of a topmost floor or a bottommost floor ofthe building.
 18. The method of claim 1, wherein the method furthercomprises: causing display of an external view, wherein the externalview comprises a street map including a representation of the building;causing display of along with the external view, a plurality ofselectable regions, wherein each of the plurality of selectable regionscorresponds to one of the floor maps; receiving, during the display ofthe external view, a user indication of one of the selectable regionscorresponding to a second floor map; and modifying the representation ofthe building to present the second floor maps in response to the userindication of the second floor map.
 19. A non-transitorycomputer-readable storage medium comprising instructions that, whenexecuted by at least one processor of a machine, cause the machine toperform operations comprising: generating, by one or more hardwareprocessors, a view comprising a first floor map of a building displayedat an angle perpendicular to a display of a plurality of floor maps ofthe building arranged in parallel according to position within thebuilding; causing display of the view within a user interface presentedon a display device of a user device; receiving, during the display ofthe view, a user selection, input via the user interface, of anindividual feature of the first floor map; and in response to receivingthe user selection of the individual feature of the first floor map,modifying the display of the view to include information correspondingto the selected feature, the modifying of the display of the viewcomprising: scanning across the view to the selected feature of thefirst floor map; and zooming in the view to the selected feature of thefirst floor map
 20. A system comprising: one or more processors; amachine-readable medium storing a set of instructions that, whenexecuted by the one or more processors, cause the machine to performoperations comprising: generating, by one or more hardware processors, aview comprising a first floor map of a building displayed at an angleperpendicular to a display of a plurality of floor maps of the buildingarranged in parallel according to position within the building; causingdisplay of the view within a user interface presented on a displaydevice of a user device; receiving, during the display of the view, auser selection, input via the user interface, of an individual featureof the first floor map; and in response to receiving the user selectionof the individual feature of the first floor map, modifying the displayof the view to include information corresponding to the selectedfeature, the modifying of the display of the view comprising: scanningacross the view to the selected feature of the first floor map; andzooming in the view to the selected feature of the first floor map.